#include<bits/stdc++.h>
using namespace std;

typedef struct Linknode
{
    int data;
    struct Linknode* next;
}Linknode;

Linknode* Init()
{
    Linknode* L = (Linknode*)malloc(sizeof(Linknode));
    L->data = 0;
    L->next = NULL;
    return L;
}

void headinsert(Linknode* L,int data)
{
    Linknode* node = (Linknode*)malloc(sizeof(Linknode));
    node->data = data;
    node->next = L->next;
    L->next = node;
}

void print(Linknode* L)
{
    Linknode* node = (Linknode*)malloc(sizeof(Linknode));
    node = L->next;
    while(node)
    {
        printf("node=%d-->",node->data);
        node = node->next;
    }
    printf("NULL\n");
}

void tailinsert(Linknode* L,int data)
{
    Linknode* node = (Linknode*)malloc(sizeof(Linknode));
    Linknode* temp = (Linknode*)malloc(sizeof(Linknode));
    node = L;
    while(L->next)
    {
        L = L->next;
        node = node->next;
    }
    temp->data = data;
    temp->next = NULL;
    node->next = temp;
}

int L_len(Linknode* L)//求链表长度
{
    L = L->next;
    int i = 0;
    while(L)
    {
        i++;
        L = L->next;
    }
    return i;
}

void findNode(Linknode* L,int k)
{
    L = L->next;
    int i = 1;
    int j = Lnumber(L);
    while(L)
        if(k>j)
        {
            printf("NULL\n");
            break;
        }
        else
        {
            if(k==i)
            {
                printf("%d\n",L->data);
                break;
            }
            else if(i<k)
            {
                L = L->next;
                i++;
            }
    }
}

int main()
{
    Linknode* L=Init();
    headinsert(L,1);
    headinsert(L,2);
    headinsert(L,3);
    headinsert(L,4);
    int j = L_len(L);
    int k = 0;
    print(L);
    printf("请输入您想要查找的第几个节点:");
    scanf("%d",&k);
    findNode(L,k);
}